Most modern large scale computer systems generally support multiprogramming, i.e. concurrent processing of more that one job. Among the jobs processed by a large computer system, some, like those in text editing applications, are input/output (I/O) intensive for which only sporadic CPU functions are involved; others, such as those relating to accounting or scientific applications, are processor intensive for which extensive CPU involvement is required.
To optimize resource utilization, a balanced mix of jobs is usually scheduled in a computer system, so that if the CPU is too busy and becomes the bottle neck of the computer system, then the system should be "tuned" by initiating more I/O-intensive jobs. On the other hand, if the CPU is under-utilized because it is frequently waiting on the I/O devices, then it becomes desirable to tune the system by initiating more processor-intensive jobs in the system.
Resources and activities in a computer system, including job scheduling, are controlled by a system control program (SCP), otherwise known as an operating system. The SCP schedules the resources and activities of a computer system in accordance with predefined scheduling and resource allocation schemes implemented to achieve predefined performance objectives. For example, if a computer system is intended to be used for interactive processing, then the SCP will be implemented so that input/output operations and job switching are more efficiently handled, on the other hand, if the computer system is intended to be used for database processing, then the SCP will be implemented to more efficiently handle information storage and retrieval.
Because of the ever increasing processing power of large scale computer systems, the probability that a computer system is used to run a diversity of jobs continue to increase. It has been realized that no longer can all the users be satisfied if only a single SCP is installed in a computer system.
To accommodate processing in a diversified application environment, modern large scale computer systems such as the Amdahl 580 allow multiple SCPs to operate concurrently in one system. Each of the multiple SCPs runs within one of multiple domains and operates within the domain as though it has sole possession of a real computer. The domains share one or more CPUs in a time multiplexed manner. The advantages provided by these multiple domain systems include the ability to: consolidate workloads for efficient operation by assigning all work of a given type of workload to the same domain, consolidate several smaller systems into one system for more efficient operation by processing the workload from each of the smaller systems in its own domain, and run a production system in one domain while developing and testing a new application in another domain.
To tune and provide capacity planning for computer system, a knowledge of its CPU utilization becomes important.
CPU utilization is usually measured in terms of its busy time. In conventional SCPs such as the VM/370 and MVS, CPU busy time is measured by a facility (such as RMF in MVS and SMART in VM) which accumulate the CPU idle time within a given time interval, and then determine the CPU busy time by: EQU CPU BUSY TIME=INTERVAL TIME-MEASURED WAIT TIME
This method works satisfactorily in a conventional system when a CPU is under the sole control of a single SCP. In a system where the CPU is shared by multiple SCPs and where a SCP has to give up control of the CPU periodically, the CPU busy time will become inflated since the SCP has no knowledge of the amount of time that it has control of the CPU. The size of the inaccuracy in any given interval of time is the amount of time during which the domain is not active, i.e. when the domain does not have access to the CPU.
What is needed is a method for accurately determine CPU busy time in a computer system wherein control of the CPU is shared by more than one system control program.